This invention relates to a virtual machine system, and more particularly, to a virtual machine system using a processor provided with a virtualization support feature.
Recently, as open servers have become popular, a larger number of servers have been introduced to information systems used in enterprises. Especially, indiscriminate introduction of Intel Architecture (IA)-32 servers, which have high cost performance, has increased the operation/management cost of servers, including the cost of power consumption and the cost of hardware maintenance, and is posing a problem for the enterprises which are operating the servers.
Server integration which, in order to reduce the operation/management cost of servers, integrates a plurality of servers into one physical server is promising. As a method for realizing the server integration, a virtualization software program for providing a feature of virtualizing computer resources is attracting attention. The virtualization software program is a control software program, which divides computer resources such as a CPU (processor) and I/Os of a single physical server, and assigns the divided computer resources to a plurality of virtual servers. On the respective virtual servers, one OS (guest OS) can operate. By employing the virtualization software program, it becomes possible to realize the server integration in which OSs and application programs that conventionally run on a plurality of physical servers are assigned to respective virtual servers, and a plurality of servers are provided on a single physical computer.
A description is now given of a policy of the virtualization software program for assigning computer resources to virtual servers. With regard to the assignment of the CPU as the computer resource, virtualization software programs for the IA-32 mainly employ a processor provided with the virtualization support feature such as virtualization technology for Xenon (VT-x) (or AMD-V). The VT-x has a feature which assigns different operation privileges between a virtualization software program and a guest OS, and is implemented as hardware of a processor, as disclosed in JP 2005-529401 A, Intel Corp., “Intel 64 and IA-32 Architectures Software Developer's Manual VOL 2B”, retrieved on May 1, 2007, and Advanced Micro Devices, Inc., “AMD-Virtualization (AMD-V)”, retrieved on May 1, 2007, for example. A CPU compliant with the VT-x feature detects the operation privilege switched between the guest OS and the virtualization software program, and backs up and restores a register state of the CPU, thereby providing independent operation environments for respective virtual servers.
On the other hand, a policy of the assignment of I/Os depends on virtualization software programs. The assignments of the I/Os by the virtualization software programs are generally classified into:
(1) direct I/O assignment type which permits direct use of I/O devices of a physical server; and
(2) virtual I/O assignment type which hides types and revisions of I/O devices of a physical server.
The “direct I/O assignment type (1)” has an advantage that, for presently operating I/Os of a physical server, server integration can be easily realized without rebuilding a file system or the like. On the other hand, the “virtual I/O assignment type (2)” has an advantage that a fixed I/O configuration can be provided for guest OSs independently of I/O types of a physical server.
The following are known examples of the virtualization software programs described above. First, as a virtualization software program for an IA-32 server, ESX Server of VMware (registered trademark) is known. The ESX Server can cause a plurality of conventional OSs to operate on a physical server employing an IA-32 CPU by means of the above-mentioned VT-x feature.
As a virtualization software program based on a mainframe computer technology, a logical partition operation feature (in IBM System 370, for example) is known. This feature partitions a single physical computer into a plurality of logical partitions (LPARs), and causes a conventional OS and a virtual machine manager (VMM) to operate on the respective LPARs. With the logical partition operation feature, the mainframe (physical computer) uses a feature (LPAR mode) corresponding to the above-mentioned VT-x of IA-32 to cause the conventional OS and the VMM to run on the virtual server (LPAR).
Moreover, SimOS is known as a virtualization software program which provides the VT-x feature of the IA-32 by means of a simulator. A simulator of this type is a software program for providing functions of an arbitrary server and CPU by interpreting an instruction sequence of a guest OS on a virtual server.
Moreover, as a virtualization support feature implemented on an IA-64 processor (IPF: Itanium Processor Family), the VT-i feature described in Intel Corp., “Intel Virtualization Technology Specification for the Intel Itanium Architecture (VT-i)”, retrieved on May 1, 2007, is known.